package com.dhcc.DRGsHosp.application;

import java.util.List;
import java.util.Map;


/**
 * @title		:QuotaApplication.java
 * @description	:
 * @author		:lileizheng
 * @date		:2016年6月12日
 * @version     :1.0
 * @copyright   :DHCC 2013-2014 
 */
public interface QuotaApplication {
	
	/**
	 * @methodname    :getQuotas
	 * @description   :获取页面指标配置
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月7日
	 */
	List<Object[]> getQuotas(String roleCode, String userCode, String pageCode);

	/**
	 * @methodname    :saveQuotas
	 * @description   :保存页面指标配置
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月8日
	 */
	void saveQuotas(Map<String, Object> json);

	/**
	 * 
	 *  getQuotaList.  
	 *  @Description：获取指标列表
	 *  @Author LiuHongjun
	 *  @param quotaType
	 *  @return 
	 *  @Date:2017年7月15日上午8:36:28
	 */
	public List<Map<String, Object>> getQuotaList(String quotaType);

	/**
	 * @methodname    :getQuotaByCode
	 * @description   :根据指标名称获取指标
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月12日
	 */
	List<Map<String,Object>> getQuotaByCode(String quotaCode);

	/**
	 * @methodname    :delQuota
	 * @description   :删除指标
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月13日
	 */
	void delQuota(String quotaCode);

	/**
	 * @methodname    :getQuotaRelease
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月13日
	 */
	List<Object[]> getQuotaRelease(String quotaCode);

	/**
	 * @methodname    :delInvalidReleaseQuotas
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月14日
	 */
	void delInvalidReleaseQuotas(String param, String quotaCode);

	/**
	 * @methodname    :saveQuotaRelease
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月14日
	 */
	void saveQuotaRelease(Map<String, Object> json);

	/**
	 * @methodname    :emptyQuotaSetting
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月15日
	 */
	void emptyQuotaSetting(String userCode, String roleCode);

	/**
	 * @methodname    :deleteQuotaSettingByCode
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @param id 
	 * @param pid 
	 * @return        :
	 * @date          :2016年7月5日
	 */
	void deleteQuotaSettingByCode(String quotaCode, String roleCode, String pid, String id);

	/**
	 * @methodname    :clearQuotaSettings
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年8月2日
	 */
	void clearQuotaSettings(String userCode, String roleCode, String pageCode);

	/**
	 * @methodname    :getQuotaByDesc
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年9月12日
	 */
	List<Object[]> getQuotaByDesc(String quotaDesc);
/**
 * 
 *  allUpdateQuotaSql.  
 *  @Description：批量更新sql
 *  @Author LiuHongjun 
 *  @Date:2017年7月20日下午2:08:02
 */
	void allUpdateQuotaSql();
/**
 * 
 *  getQuotasByRole.  
 *  @Description：
 *  @Author LiuHongjun
 *  @param roleCode
 *  @param userCode
 *  @return 
 *  @Date:2017年7月27日下午4:29:32
 */
List<Object[]> getQuotasByRole(String roleCode, String userCode);
/**
 * 
 *  getQuotaRoleList.  
 *  @Description：
 *  @Author LiuHongjun
 *  @param quotaType
 *  @return 
 *  @Date:2017年7月27日下午5:49:13
 */
Object getQuotaRoleList(String quotaType);
/**
 * 
 *  getQuotasUserByRole.  
 *  @Description：用户界面根据角色获取指标
 *  @Author LiuHongjun
 *  @param roleCode
 *  @param userCode
 *  @param pageCode
 *  @return 
 *  @Date:2017年7月27日下午9:10:03
 */
List<Object[]> getQuotasUserByRole(String roleCode,String userCode, String pageCode) ;
/**
 * 
 *  adminSaveQuotas.  
 *  @Description：存储管理员下配置指标
 *  @Author LiuHongjun
 *  @param json 
 *  @Date:2017年7月28日下午2:56:32
 */
void adminSaveQuotas(Map<String, Object> json);
/**
 * 
 *  updatePagesQuotas.  
 *  @Description：页面指标配置更新
 *  @Author LiuHongjun
 *  @param json 
 *  @Date:2017年7月28日下午3:34:29
 */
void updatePagesQuotas(Map<String, Object> json);

Object saveQuota(Map<String, Object> json);

}
